From: Pino Toscano Date: Sat, 27 Dec 2025 14:09:34 +0000 (+0100) Subject: Look for zstd before Clang X-Git-Tag: archive/raspbian/6.10.2-2+rpi1~1^2~1 X-Git-Url: https://dgit.raspbian.org/%22http:/www.example.com//%22stanciumarius94%40gmail.com/%22/%22http:/www.example.com/%22stanciumarius94%40gmail.com/%22?a=commitdiff_plain;h=5b9d810ae401e6f48eeeca824b203fe02cb5c3bd;p=qt6-tools.git Look for zstd before Clang Last-Update: 2025-07-19 Forwarded: not-needed The story is more or less the following: - LLVM ships its own Findzstd cmake find module from 16; this module defines 2 targets: zstd::libzstd_shared and zstd::libzstd_static - libzstd ships a cmake config module that defines 3 targets: zstd::libzstd_shared, zstd::libzstd_static, and zstd::libzstd - the libzstd config module assumes that if one target is defined, all of them are, as if the config module itself was already run (i.e. multiple "find_package(zstd)" in a cmake project) - in qttools, Clang is searched first, which in turns requires LLVM, and then libzstd More details here: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1073480#47 As workaround, look for libzstd before Clang: this way the proper zstd cmake targets are defined, and the Findzstd cmake find module shipped with LLVM will use them just fine without redefining them. This should most likely be fixed on LLVM side. Gbp-Pq: Name cmake-find-zstd-before-clang.diff --- diff --git a/configure.cmake b/configure.cmake index 798078a..e82e5a5 100644 --- a/configure.cmake +++ b/configure.cmake @@ -3,6 +3,19 @@ #### Tests +# HACK: look for libzstd before Clang/LLVM; this way all the right +# libzstd cmake targets are defined, instead of the partial ones defined +# by the Findzstd shipped with LLVM +if(NOT TARGET WrapZSTD::WrapZSTD) + qt_find_package(WrapZSTD 1.3 + PROVIDED_TARGETS + WrapZSTD::WrapZSTD + zstd::libzstd + zstd::libzstd_static + zstd::libzstd_shared + ) +endif() + qt_find_package(WrapLibClang 8 PROVIDED_TARGETS WrapLibClang::WrapLibClang) if(TARGET WrapLibClang::WrapLibClang) diff --git a/src/designer/src/lib/CMakeLists.txt b/src/designer/src/lib/CMakeLists.txt index 5513f2b..0cccbd5 100644 --- a/src/designer/src/lib/CMakeLists.txt +++ b/src/designer/src/lib/CMakeLists.txt @@ -421,15 +421,6 @@ endif() if(TARGET zstd::libzstd_static) qt_internal_disable_find_package_global_promotion(zstd::libzstd_static) endif() -if(NOT TARGET WrapZSTD::WrapZSTD) - qt_find_package(WrapZSTD 1.3 - PROVIDED_TARGETS - WrapZSTD::WrapZSTD - zstd::libzstd - zstd::libzstd_static - zstd::libzstd_shared - ) -endif() qt_internal_extend_target(Designer CONDITION QT_FEATURE_zstd LIBRARIES